| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142 | 1
1
39
1
1
1
1
1
19
19
1
19
130
130
130
130
111
111
111
1
19
1
15
1
1
1
1
14
14
1
14
1
14
1
11
11
1
1
1
1
4
4
1
4
1
4
1
2
2
1
1
1
1
2
1
1
1
1
1
| System.register([], function (_export) {
'use strict';
var specials, escapeRegex, StaticSegment, DynamicSegment, StarSegment, EpsilonSegment;
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
return {
setters: [],
execute: function () {
specials = ['/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\'];
escapeRegex = new RegExp('(\\' + specials.join('|\\') + ')', 'g');
// A Segment represents a segment in the original route description.
// Each Segment type provides an `eachChar` and `regex` method.
//
// The `eachChar` method invokes the callback with one or more character
// specifications. A character specification consumes one or more input
// characters.
//
// The `regex` method returns a regex fragment for the segment. If the
// segment is a dynamic or star segment, the regex fragment also includes
// a capture.
//
// A character specification contains:
//
// * `validChars`: a String with a list of all valid characters, or
// * `invalidChars`: a String with a list of all invalid characters
// * `repeat`: true if the character specification can repeat
StaticSegment = (function () {
function StaticSegment(string) {
_classCallCheck(this, StaticSegment);
this.string = string;
}
StaticSegment.prototype.eachChar = function eachChar(callback) {
for (var _iterator = this.string, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
Iif (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var ch = _ref;
callback({ validChars: ch });
}
};
StaticSegment.prototype.regex = function regex() {
return this.string.replace(escapeRegex, '\\$1');
};
StaticSegment.prototype.generate = function generate() {
return this.string;
};
return StaticSegment;
})();
_export('StaticSegment', StaticSegment);
DynamicSegment = (function () {
function DynamicSegment(name) {
_classCallCheck(this, DynamicSegment);
this.name = name;
}
DynamicSegment.prototype.eachChar = function eachChar(callback) {
callback({ invalidChars: '/', repeat: true });
};
DynamicSegment.prototype.regex = function regex() {
return '([^/]+)';
};
DynamicSegment.prototype.generate = function generate(params, consumed) {
consumed[this.name] = true;
return params[this.name];
};
return DynamicSegment;
})();
_export('DynamicSegment', DynamicSegment);
StarSegment = (function () {
function StarSegment(name) {
_classCallCheck(this, StarSegment);
this.name = name;
}
StarSegment.prototype.eachChar = function eachChar(callback) {
callback({ invalidChars: '', repeat: true });
};
StarSegment.prototype.regex = function regex() {
return '(.+)';
};
StarSegment.prototype.generate = function generate(params, consumed) {
consumed[this.name] = true;
return params[this.name];
};
return StarSegment;
})();
_export('StarSegment', StarSegment);
EpsilonSegment = (function () {
function EpsilonSegment() {
_classCallCheck(this, EpsilonSegment);
}
EpsilonSegment.prototype.eachChar = function eachChar() {};
EpsilonSegment.prototype.regex = function regex() {
return '';
};
EpsilonSegment.prototype.generate = function generate() {
return '';
};
return EpsilonSegment;
})();
_export('EpsilonSegment', EpsilonSegment);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3JvdXRlLXJlY29nbml6ZXIvc3JjL3NlZ21lbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztNQUFNLFFBQVEsRUFLUixXQUFXLEVBbUJKLGFBQWEsRUFvQmIsY0FBYyxFQW1CZCxXQUFXLEVBbUJYLGNBQWM7Ozs7Ozs7QUFsRnJCLGNBQVEsR0FBRyxDQUNmLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUM1QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQ25DO0FBRUssaUJBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUIxRCxtQkFBYTtBQUNiLGlCQURBLGFBQWEsQ0FDWixNQUFNLEVBQUU7Z0NBRFQsYUFBYTs7QUFFdEIsY0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7U0FDdEI7O0FBSFUscUJBQWEsV0FLeEIsUUFBUSxHQUFBLGtCQUFDLFFBQVEsRUFBRTtBQUNqQiwrQkFBZSxJQUFJLENBQUMsTUFBTSxrSEFBRTs7Ozs7Ozs7Ozs7O2dCQUFuQixFQUFFOztBQUNULG9CQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztXQUM5QjtTQUNGOztBQVRVLHFCQUFhLFdBV3hCLEtBQUssR0FBQSxpQkFBRztBQUNOLGlCQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNqRDs7QUFiVSxxQkFBYSxXQWV4QixRQUFRLEdBQUEsb0JBQUc7QUFDVCxpQkFBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BCOztlQWpCVSxhQUFhOzs7K0JBQWIsYUFBYTs7QUFvQmIsb0JBQWM7QUFDZCxpQkFEQSxjQUFjLENBQ2IsSUFBSSxFQUFFO2dDQURQLGNBQWM7O0FBRXZCLGNBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2xCOztBQUhVLHNCQUFjLFdBS3pCLFFBQVEsR0FBQSxrQkFBQyxRQUFRLEVBQUU7QUFDakIsa0JBQVEsQ0FBQyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDL0M7O0FBUFUsc0JBQWMsV0FTekIsS0FBSyxHQUFBLGlCQUFHO0FBQ04saUJBQU8sU0FBUyxDQUFDO1NBQ2xCOztBQVhVLHNCQUFjLFdBYXpCLFFBQVEsR0FBQSxrQkFBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ3pCLGtCQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMzQixpQkFBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCOztlQWhCVSxjQUFjOzs7Z0NBQWQsY0FBYzs7QUFtQmQsaUJBQVc7QUFDWCxpQkFEQSxXQUFXLENBQ1YsSUFBSSxFQUFFO2dDQURQLFdBQVc7O0FBRXBCLGNBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2xCOztBQUhVLG1CQUFXLFdBS3RCLFFBQVEsR0FBQSxrQkFBQyxRQUFRLEVBQUU7QUFDakIsa0JBQVEsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDOUM7O0FBUFUsbUJBQVcsV0FTdEIsS0FBSyxHQUFBLGlCQUFHO0FBQ04saUJBQU8sTUFBTSxDQUFDO1NBQ2Y7O0FBWFUsbUJBQVcsV0FhdEIsUUFBUSxHQUFBLGtCQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDekIsa0JBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQzNCLGlCQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7O2VBaEJVLFdBQVc7Ozs2QkFBWCxXQUFXOztBQW1CWCxvQkFBYztpQkFBZCxjQUFjO2dDQUFkLGNBQWM7OztBQUFkLHNCQUFjLFdBQ3pCLFFBQVEsR0FBQSxvQkFBRyxFQUFFOztBQURGLHNCQUFjLFdBRXpCLEtBQUssR0FBQSxpQkFBRztBQUFFLGlCQUFPLEVBQUUsQ0FBQztTQUFFOztBQUZYLHNCQUFjLFdBR3pCLFFBQVEsR0FBQSxvQkFBRztBQUFFLGlCQUFPLEVBQUUsQ0FBQztTQUFFOztlQUhkLGNBQWM7OztnQ0FBZCxjQUFjIiwiZmlsZSI6Ii9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3JvdXRlLXJlY29nbml6ZXIvc3JjL3NlZ21lbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3BlY2lhbHMgPSBbXG4gICcvJywgJy4nLCAnKicsICcrJywgJz8nLCAnfCcsXG4gICcoJywgJyknLCAnWycsICddJywgJ3snLCAnfScsICdcXFxcJ1xuXTtcblxuY29uc3QgZXNjYXBlUmVnZXggPSBuZXcgUmVnRXhwKCcoXFxcXCcgKyBzcGVjaWFscy5qb2luKCd8XFxcXCcpICsgJyknLCAnZycpO1xuXG4vLyBBIFNlZ21lbnQgcmVwcmVzZW50cyBhIHNlZ21lbnQgaW4gdGhlIG9yaWdpbmFsIHJvdXRlIGRlc2NyaXB0aW9uLlxuLy8gRWFjaCBTZWdtZW50IHR5cGUgcHJvdmlkZXMgYW4gYGVhY2hDaGFyYCBhbmQgYHJlZ2V4YCBtZXRob2QuXG4vL1xuLy8gVGhlIGBlYWNoQ2hhcmAgbWV0aG9kIGludm9rZXMgdGhlIGNhbGxiYWNrIHdpdGggb25lIG9yIG1vcmUgY2hhcmFjdGVyXG4vLyBzcGVjaWZpY2F0aW9ucy4gQSBjaGFyYWN0ZXIgc3BlY2lmaWNhdGlvbiBjb25zdW1lcyBvbmUgb3IgbW9yZSBpbnB1dFxuLy8gY2hhcmFjdGVycy5cbi8vXG4vLyBUaGUgYHJlZ2V4YCBtZXRob2QgcmV0dXJucyBhIHJlZ2V4IGZyYWdtZW50IGZvciB0aGUgc2VnbWVudC4gSWYgdGhlXG4vLyBzZWdtZW50IGlzIGEgZHluYW1pYyBvciBzdGFyIHNlZ21lbnQsIHRoZSByZWdleCBmcmFnbWVudCBhbHNvIGluY2x1ZGVzXG4vLyBhIGNhcHR1cmUuXG4vL1xuLy8gQSBjaGFyYWN0ZXIgc3BlY2lmaWNhdGlvbiBjb250YWluczpcbi8vXG4vLyAqIGB2YWxpZENoYXJzYDogYSBTdHJpbmcgd2l0aCBhIGxpc3Qgb2YgYWxsIHZhbGlkIGNoYXJhY3RlcnMsIG9yXG4vLyAqIGBpbnZhbGlkQ2hhcnNgOiBhIFN0cmluZyB3aXRoIGEgbGlzdCBvZiBhbGwgaW52YWxpZCBjaGFyYWN0ZXJzXG4vLyAqIGByZXBlYXRgOiB0cnVlIGlmIHRoZSBjaGFyYWN0ZXIgc3BlY2lmaWNhdGlvbiBjYW4gcmVwZWF0XG5cbmV4cG9ydCBjbGFzcyBTdGF0aWNTZWdtZW50IHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gIH1cblxuICBlYWNoQ2hhcihjYWxsYmFjaykge1xuICAgIGZvciAobGV0IGNoIG9mIHRoaXMuc3RyaW5nKSB7XG4gICAgICBjYWxsYmFjayh7IHZhbGlkQ2hhcnM6IGNoIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2V4KCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZy5yZXBsYWNlKGVzY2FwZVJlZ2V4LCAnXFxcXCQxJyk7XG4gIH1cblxuICBnZW5lcmF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZWdtZW50IHtcbiAgY29uc3RydWN0b3IobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBlYWNoQ2hhcihjYWxsYmFjaykge1xuICAgIGNhbGxiYWNrKHsgaW52YWxpZENoYXJzOiAnLycsIHJlcGVhdDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJlZ2V4KCkge1xuICAgIHJldHVybiAnKFteL10rKSc7XG4gIH1cblxuICBnZW5lcmF0ZShwYXJhbXMsIGNvbnN1bWVkKSB7XG4gICAgY29uc3VtZWRbdGhpcy5uYW1lXSA9IHRydWU7XG4gICAgcmV0dXJuIHBhcmFtc1t0aGlzLm5hbWVdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdGFyU2VnbWVudCB7XG4gIGNvbnN0cnVjdG9yKG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZWFjaENoYXIoY2FsbGJhY2spIHtcbiAgICBjYWxsYmFjayh7IGludmFsaWRDaGFyczogJycsIHJlcGVhdDogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJlZ2V4KCkge1xuICAgIHJldHVybiAnKC4rKSc7XG4gIH1cblxuICBnZW5lcmF0ZShwYXJhbXMsIGNvbnN1bWVkKSB7XG4gICAgY29uc3VtZWRbdGhpcy5uYW1lXSA9IHRydWU7XG4gICAgcmV0dXJuIHBhcmFtc1t0aGlzLm5hbWVdO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFcHNpbG9uU2VnbWVudCB7XG4gIGVhY2hDaGFyKCkge31cbiAgcmVnZXgoKSB7IHJldHVybiAnJzsgfVxuICBnZW5lcmF0ZSgpIHsgcmV0dXJuICcnOyB9XG59XG4iXX0= |